容器的蓬勃發展使得現在大部分的開發者都一定聽過 docker 甚至是 container 這類型的名詞,但是對於維運人員來說這完全不夠,他們更在意的是如果要將這些容器化的應用程式給部署到生產環境上,要如何面對千變萬化的環境並且能夠處理得妥妥穩穩的。
為了解決這個問題,勢必要有一套容器協同合作方案,能夠處理至少下列四個功能
1. Scheduling: 決定哪些 container 要運行到哪個節點
2. Management: 容器的生命週期該怎麼管理
3. Service Discovery: 不同的容器服務要如何存取彼此
4. Load Balancing: 透過負載平衡的方式來轉發各式各樣的流量
過去百家爭鳴的時代已經慢慢消退,2021 的這天,我想 Kubernetes 是所有人想到這個問題的第一直覺反應。
本篇文章是 2018 年底的文章,作者想要描述到底一個容器協同方案應該長什麼樣子,要提供什麼樣的功能,也許最後其實作與使用方式與 Kubernetes 不盡相同,但是其背後的目的都是一致,希望能夠提供的解決方案讓大家開心的使用容器化的應用程式來面對各式各樣的部署環境。
本篇文章中,作者採用了 Nomad 以及 Consul 來描述這兩個開源解決方案如何組合出一個容器協同平臺,同時簡介了一下這個架構的樣貌以及特色。
透過這兩個解決方案至少達成了 scheduling, service discovery, load balancing 等基本需求
也許現在的你都在使用 Kubernetes 來完成每日所需,但是看看這些不同解決方案的設計與樣貌,也可以幫自己補充一些廣度的知識,讓你可以理解到底這些開源軟體之間的差異
https://medium.com/@obenaus.thomas/how-a-production-ready-container-orchestration-system-could-look-like-6f92b81a3319